SQLite ডেটাবেস ব্যবহার

Mobile App Development - অ্যান্ড্রয়েড ডেভেলপমেন্ট (Android) - Android অ্যাপ্লিকেশন এ ডেটা স্টোরেজ
246

SQLite ডেটাবেস ব্যবহার

SQLite হল একটি লাইটওয়েট এবং বিল্ট-ইন রিলেশনাল ডেটাবেস, যা Android অ্যাপে স্ট্রাকচারড ডেটা সংরক্ষণের জন্য ব্যবহার করা হয়। এটি বড় আকারের এবং স্ট্রাকচারড ডেটা ম্যানেজ করার জন্য উপযুক্ত, যেখানে ডেটা টেবিল আকারে সংরক্ষণ এবং SQL কোয়েরি ব্যবহার করে পরিচালনা করা হয়। SQLite ব্যবহারের মাধ্যমে আপনি অ্যাপের ভেতরে ডেটা ইনসার্ট, আপডেট, ডিলিট এবং রিট্রিভ করতে পারেন।

নিচে SQLite ডেটাবেস কিভাবে Android অ্যাপে ব্যবহার করা যায় তা নিয়ে বিস্তারিত আলোচনা এবং উদাহরণ দেওয়া হলো:


ধাপ ১: Database Helper ক্লাস তৈরি করা

SQLite ডেটাবেস ব্যবহারের জন্য একটি SQLiteOpenHelper ক্লাস তৈরি করতে হয়। এই ক্লাসটি ডেটাবেস তৈরি করা, আপগ্রেড করা, এবং ডেটাবেজ অপারেশন পরিচালনা করার জন্য ব্যবহৃত হয়।

public class MyDatabaseHelper extends SQLiteOpenHelper {

    // Database এবং Table এর তথ্য
    private static final String DATABASE_NAME = "mydatabase.db";
    private static final int DATABASE_VERSION = 1;
    private static final String TABLE_NAME = "users";
    private static final String COLUMN_ID = "id";
    private static final String COLUMN_NAME = "name";
    private static final String COLUMN_EMAIL = "email";

    // Constructor
    public MyDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    // ডেটাবেস তৈরি করার মেথড
    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("
                + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                + COLUMN_NAME + " TEXT, "
                + COLUMN_EMAIL + " TEXT)";
        db.execSQL(CREATE_TABLE);
    }

    // ডেটাবেস আপগ্রেড করার মেথড
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }
}

এখানে আমরা MyDatabaseHelper নামে একটি ক্লাস তৈরি করেছি, যা SQLiteOpenHelper ক্লাসকে এক্সটেন্ড করে। এটি onCreate() এবং onUpgrade() মেথড ব্যবহার করে ডেটাবেস তৈরি এবং আপগ্রেড করে।


ধাপ ২: ডেটা ইনসার্ট করা

ডেটাবেসে ডেটা ইনসার্ট করার জন্য ContentValues ব্যবহার করা হয়। SQLiteDatabase ক্লাসের insert() মেথড ব্যবহার করে ডেটা ইনসার্ট করা হয়।

public void insertUser(String name, String email) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(COLUMN_NAME, name);
    values.put(COLUMN_EMAIL, email);

    db.insert(TABLE_NAME, null, values);
    db.close();
}

এখানে insertUser() মেথড ব্যবহার করে ডেটা ইনসার্ট করা হচ্ছে। ContentValues এর মাধ্যমে আমরা ডেটার key-value পেয়ার সেট করছি এবং তারপর insert() মেথডের মাধ্যমে ডেটাবেসে সেই ডেটা সংরক্ষণ করা হচ্ছে।


ধাপ ৩: ডেটা রিট্রিভ করা

SQLite ডেটাবেস থেকে ডেটা রিট্রিভ করার জন্য query() বা rawQuery() মেথড ব্যবহার করা হয়। এই মেথডগুলো SQL কোয়েরি চালিয়ে ডেটা ফেচ করে।

public List<String> getAllUsers() {
    List<String> users = new ArrayList<>();
    SQLiteDatabase db = this.getReadableDatabase();

    String query = "SELECT * FROM " + TABLE_NAME;
    Cursor cursor = db.rawQuery(query, null);

    if (cursor.moveToFirst()) {
        do {
            String user = "ID: " + cursor.getInt(cursor.getColumnIndexOrThrow(COLUMN_ID))
                    + ", Name: " + cursor.getString(cursor.getColumnIndexOrThrow(COLUMN_NAME))
                    + ", Email: " + cursor.getString(cursor.getColumnIndexOrThrow(COLUMN_EMAIL));
            users.add(user);
        } while (cursor.moveToNext());
    }

    cursor.close();
    db.close();
    return users;
}

এখানে getAllUsers() মেথড ব্যবহার করে আমরা ডেটাবেস থেকে সব ইউজারের তথ্য ফেচ করছি। Cursor ব্যবহার করে আমরা SQL কোয়েরির রেজাল্ট ধরে রাখছি এবং সেই ডেটা List আকারে রিটার্ন করছি।


ধাপ ৪: ডেটা আপডেট করা

SQLite ডেটাবেসে ডেটা আপডেট করার জন্য update() মেথড ব্যবহার করা হয়। এটি ডেটাবেসের একটি নির্দিষ্ট রোকে নির্দিষ্ট মান দিয়ে আপডেট করে।

public void updateUser(int id, String name, String email) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(COLUMN_NAME, name);
    values.put(COLUMN_EMAIL, email);

    db.update(TABLE_NAME, values, COLUMN_ID + " = ?", new String[]{String.valueOf(id)});
    db.close();
}

এখানে updateUser() মেথড ব্যবহার করে আমরা একটি নির্দিষ্ট ইউজারের নাম এবং ইমেল আপডেট করছি। update() মেথডের মাধ্যমে আমরা ডেটাবেসের নির্দিষ্ট রোতে আপডেট করছি।


ধাপ ৫: ডেটা ডিলিট করা

SQLite ডেটাবেস থেকে ডেটা ডিলিট করার জন্য delete() মেথড ব্যবহার করা হয়। এটি নির্দিষ্ট শর্ত অনুযায়ী ডেটাবেসের রো ডিলিট করে।

public void deleteUser(int id) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(TABLE_NAME, COLUMN_ID + " = ?", new String[]{String.valueOf(id)});
    db.close();
}

এখানে deleteUser() মেথড ব্যবহার করে আমরা একটি নির্দিষ্ট আইডির ইউজার ডিলিট করছি। delete() মেথডের মাধ্যমে ডেটাবেসের রো মুছে ফেলা হচ্ছে।


ধাপ ৬: Activity তে SQLite ডেটাবেস ব্যবহার

MainActivity বা অন্য কোনো Activity তে ডেটাবেস ব্যবহার করতে হলে MyDatabaseHelper ক্লাসের একটি অবজেক্ট তৈরি করে এর মেথডগুলো ব্যবহার করা যায়।

উদাহরণ:

public class MainActivity extends AppCompatActivity {

    private MyDatabaseHelper dbHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        dbHelper = new MyDatabaseHelper(this);

        // ডেটা ইনসার্ট করা
        dbHelper.insertUser("John Doe", "john.doe@example.com");

        // ডেটা রিট্রিভ করা
        List<String> users = dbHelper.getAllUsers();
        for (String user : users) {
            Log.d("User Info", user);
        }

        // ডেটা আপডেট করা
        dbHelper.updateUser(1, "John Smith", "john.smith@example.com");

        // ডেটা ডিলিট করা
        dbHelper.deleteUser(1);
    }
}

এই উদাহরণে MyDatabaseHelper এর মাধ্যমে ডেটাবেসে ডেটা ইনসার্ট, রিট্রিভ, আপডেট এবং ডিলিট করা হয়েছে।


SQLite ডেটাবেসের সুবিধা এবং সীমাবদ্ধতা

সুবিধা:

  • লাইটওয়েট এবং দ্রুত: SQLite খুব হালকা এবং দ্রুত কাজ করে, যা মোবাইল ডিভাইসের জন্য উপযুক্ত।
  • লোকাল স্টোরেজ: অ্যাপ্লিকেশনের জন্য অফলাইনে কাজ করার উপযোগী।
  • রিলেশনাল ডেটাবেস: SQL কোয়েরি ব্যবহার করে স্ট্রাকচারড ডেটা ম্যানেজ করা যায়।

সীমাবদ্ধতা:

  • সিকিউরিটি: SQLite ডেটাবেস সরাসরি সিকিউরড নয়; ডেটা এনক্রিপশন করা প্রয়োজন।
  • কনকারেন্সি: বড় ডেটাবেসে একাধিক অ্যাক্সেস করার সময় পারফরম্যান্স সমস্যা হতে পারে।
  • ক্লাউড সিঙ্ক্রোনাইজেশন: SQLite একটি লোকাল ডেটাবেস, যা ক্লাউডের সাথে সিঙ্ক করা সম্ভব নয় (Firebase বা Room দিয়ে সম্ভব)।

উপসংহার

SQLite হল একটি লাইটওয়েট এবং কার্যকরী ডেটাবেস পদ্ধতি, যা Android অ্যাপ্লিকেশনের জন্য স্ট্রাকচারড ডেটা সংরক্ষণ এবং পরিচালনা করতে ব্যবহৃত হয়। SQLite ব্যবহার করে আপনি অ্যাপ্লিকেশন ডেটা ম্যানেজ করার জন্য শক্তিশালী এবং ফ্লেক্সিবল সমাধান তৈরি করতে পারেন। Android অ্যাপ্লিকেশন ডেভেলপমেন্টে SQLite এর সঠিক ব্যবহার অ্যাপের পারফরম্যান্স

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...